﻿using Clancy.Data;
using System;
using System.ServiceModel;

namespace Clancy.Communication.Interfaces
{
    [ServiceContract(CallbackContract = typeof(IClancyCommunicationCallbackService))]
    public interface IClancyCommunicationService
    {
        [OperationContract]
        void AddNewSource(VideoSourceFilterInfo videoSourceFilterInfo);

        [OperationContract]
        bool Connect();

        [OperationContract]
        bool DeleteRecording(Guid selectedRecordingId);

        [OperationContract]
        void DeleteVideoSource(SurveilanceObject surveilanceObject);

        [OperationContract]
        bool Disconnect();

        [OperationContract]
        VideoSourceFilterInfo[] GetAvailableSources();

        [OperationContract]
        SurveilanceObject[] GetSureveilanceObjects();

        [OperationContract]
        bool UpdateSurveilance(SurveilanceObject surveilanceObject);

        [OperationContract]
        bool UpdateSurveilanceProperty(Guid surveilanceObjectId, string propertyName, string valueAsString);
    }
}